package com.uduew.sjd.utils

import android.text.Spannable
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import java.text.DecimalFormat

object SpannableUtils {


    fun getDoubleFormat(data: Double): String {
        if (data.isNaN()) return "0"
        val formatter = DecimalFormat("#,##0.##########") // 添加千分位分隔符
        var data = formatter.format(data).let {
            if (it.endsWith(".0")) it.substringBefore(".0") else it
        }
        return data.toString()
    }


    /**
     * 设置部分文本的颜色
     *
     * @param text 原始文本
     * @param target 需要设置颜色的目标文本
     * @param color 颜色值
     * @return SpannableString
     */
    fun setTextColor(text: String, target: String, color: Int): SpannableString {
        val spannableString = SpannableString(text)
        val startIndex = text.indexOf(target)
        if (startIndex >= 0) {
            val endIndex = startIndex + target.length
            spannableString.setSpan(
                ForegroundColorSpan(color),
                startIndex,
                endIndex,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
            )
        }
        return spannableString
    }

    /**
     * 设置部分文本的颜色
     *
     * @param text 原始文本
     * @param startIndex 目标文本的起始位置
     * @param endIndex 目标文本的结束位置
     * @param color 颜色值
     * @return SpannableString
     */
    fun setTextColor(text: String, startIndex: Int, endIndex: Int, color: Int): SpannableString {
        val spannableString = SpannableString(text)
        spannableString.setSpan(
            ForegroundColorSpan(color),
            startIndex,
            endIndex,
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
        )
        return spannableString
    }
}
